/*
 * Produto.java
 *
 * Created on October 7, 2007, 10:49 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package petstore.model;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Version;

/**
 * Entity class Produto
 * 
 * @author Tom Hayden
 */
@Entity
@Table(name = "produto")
@AttributeOverrides( {
        @AttributeOverride(name="id", column=@Column(name="cdproduto")),
        @AttributeOverride(name="description", column=@Column(name="dsproduto")),
        @AttributeOverride(name="active", column=@Column(name="ativo"))
    })
public class Produto extends CodeData {

    @Column(name = "dsetiqueta")
    private String etiqueta;

    @Column(name = "qtdatual")
    private Integer quantidadeAtual;

    @Column(name = "qtdminima")
    private Integer quantidadeMinima;

    @Column(name = "qtdmaxima")
    private Integer quantidadeMaxima;

    @Column(name = "vlrcusto")
    private Double valorCusto;

    @Column(name = "vlrcustomedio")
    private Double valorCustoMedio;

    @Column(name = "vlrcustooper")
    private Double valorCustoOperacional;

    @Column(name = "vlrcustofrete")
    private Double valorCustoFrete;

    @Column(name = "prcmargemlucro")
    private Double percentualMargemLucro;

    @Column(name = "perccomissao")
    private Double percentualComissao;

    @Column(name = "vlrpromocao")
    private Double valorPromocao;

    @Column(name = "prcdesconto")
    private Double percentualDesconto;

    @Column(name = "vlrdesconto")
    private Double valorDesconto;

    @Column(name = "vlrvenda")
    private Double valorVenda;

    @Column(name = "vlrcreditoicms")
    private Double valorCreditoIcms;

    @Column(name = "vlrdebitoicms")
    private Double valorDebitoIcms;

    @Version
    private Integer versao;

    @ManyToOne
    @JoinColumn(name="cdfornecedor")
    private Fornecedor fornecedor;

    @ManyToOne
    @JoinColumn(name="cdgrupoproduto")
    private GrupoProduto grupoProduto;

    @ManyToOne
    @JoinColumn(name="cdunidmedida")
    private UnidadeMedida unidadeMedida;

    /** Creates a new instance of Produto */
    public Produto() {
    }

    public String getEtiqueta() {
        return etiqueta;
    }

    public void setEtiqueta(String etiqueta) {
        this.etiqueta = etiqueta;
    }

    public Integer getQuantidadeAtual() {
        return quantidadeAtual;
    }

    public void setQuantidadeAtual(Integer quantidadeAtual) {
        this.quantidadeAtual = quantidadeAtual;
    }

    public Integer getQuantidadeMinima() {
        return quantidadeMinima;
    }

    public void setQuantidadeMinima(Integer quantidadeMinima) {
        this.quantidadeMinima = quantidadeMinima;
    }

    public Integer getQuantidadeMaxima() {
        return quantidadeMaxima;
    }

    public void setQuantidadeMaxima(Integer quantidadeMaxima) {
        this.quantidadeMaxima = quantidadeMaxima;
    }

    public Double getValorCusto() {
        return valorCusto;
    }

    public void setValorCusto(Double valorCusto) {
        this.valorCusto = valorCusto;
    }

    public Double getValorCustoMedio() {
        return valorCustoMedio;
    }

    public void setValorCustoMedio(Double valorCustoMedio) {
        this.valorCustoMedio = valorCustoMedio;
    }

    public Double getValorCustoOperacional() {
        return valorCustoOperacional;
    }

    public void setValorCustoOperacional(Double valorCustoOperacional) {
        this.valorCustoOperacional = valorCustoOperacional;
    }

    public Double getValorCustoFrete() {
        return valorCustoFrete;
    }

    public void setValorCustoFrete(Double valorCustoFrete) {
        this.valorCustoFrete = valorCustoFrete;
    }

    public Double getPercentualMargemLucro() {
        return percentualMargemLucro;
    }

    public void setPercentualMargemLucro(Double percentualMargemLucro) {
        this.percentualMargemLucro = percentualMargemLucro;
    }

    public Double getPercentualComissao() {
        return percentualComissao;
    }

    public void setPercentualComissao(Double percentualComissao) {
        this.percentualComissao = percentualComissao;
    }

    public Double getValorPromocao() {
        return valorPromocao;
    }

    public void setValorPromocao(Double valorPromocao) {
        this.valorPromocao = valorPromocao;
    }

    public Double getPercentualDesconto() {
        return percentualDesconto;
    }

    public void setPercentualDesconto(Double percentualDesconto) {
        this.percentualDesconto = percentualDesconto;
    }

    public Double getValorDesconto() {
        return valorDesconto;
    }

    public void setValorDesconto(Double valorDesconto) {
        this.valorDesconto = valorDesconto;
    }

    public Double getValorVenda() {
        return valorVenda;
    }

    public void setValorVenda(Double valorVenda) {
        this.valorVenda = valorVenda;
    }

    public Double getValorCreditoIcms() {
        return valorCreditoIcms;
    }

    public void setValorCreditoIcms(Double valorCreditoIcms) {
        this.valorCreditoIcms = valorCreditoIcms;
    }

    public Double getValorDebitoIcms() {
        return valorDebitoIcms;
    }

    public void setValorDebitoIcms(Double valorDebitoIcms) {
        this.valorDebitoIcms = valorDebitoIcms;
    }

    public Integer getVersao() {
        return versao;
    }

    public void setVersao(Integer versao) {
        this.versao = versao;
    }

    public Fornecedor getFornecedor() {
        return fornecedor;
    }

    public void setFornecedor(Fornecedor fornecedor) {
        this.fornecedor = fornecedor;
    }

    public GrupoProduto getGrupoProduto() {
        return grupoProduto;
    }

    public void setGrupoProduto(GrupoProduto grupoProduto) {
        this.grupoProduto = grupoProduto;
    }

    public UnidadeMedida getUnidadeMedida() {
        return unidadeMedida;
    }

    public void setUnidadeMedida(UnidadeMedida unidadeMedida) {
        this.unidadeMedida = unidadeMedida;
    }

}
